'use client'; // D2 종목 토론 탭 — 통계 헤더 + 글 목록(DefaultListLayout 스타일) + 글쓰기(로그인 게이트). // 목록은 SSR 로 받은 initial 데이터를 렌더하고, 페이징은 링크로 처리(?tab=discussion&page=). import '@/app/styles/community.scss'; import Link from 'next/link'; import { useState } from 'react'; import { useMemberContext } from '@/contexts/memberProvider'; import { formatDate } from '@/lib/utils/client'; import { StockBoardPostsResponse } from '@/types/community'; import StockWriteForm from './StockWriteForm'; interface Props { code: string; stockName?: string|null; page: number; perPage: number; data: StockBoardPostsResponse; } export default function StockDiscussion({ code, stockName, page, perPage, data }: Props) { const { member } = useMemberContext(); const [writing, setWriting] = useState(false); const stats = data.stats; const list = data.list; const startIndex = data.total - (page - 1) * perPage; const totalPages = Math.max(Math.ceil(data.total / perPage), 1); return (
등록된 글이 없습니다. 첫 글을 남겨보세요.
) : (| 번호 | 제목 | 작성자 | 작성일 | 조회 | 추천 |
|---|---|---|---|---|---|
| {startIndex - i} | {row.hasPrediction && 예측} {row.subject} {row.comments > 0 && [{row.comments}]} | {row.name || row.sid || '익명'} | {formatDate(row.createdAt)} | {row.views.toLocaleString()} | {row.likes.toLocaleString()} |